/**
    数组：
        1、为什么需要数组
                为了解决保存大量同类型的数据 存储和使用；为了模拟现实世界
        2、数组的分类
            
                一维数组
                            怎样定义一维数组
                                    为n个变量连续分配存储空间
                                    所有的变量的数据类型必须相同
                                    所有变量所占的字节大小必须相等
                            一维数组名不代表数组中所有的元素
                            一维数组名代表数组中第一个元素的地址
                            有关数组的操作：
                                            初始化
                                                    完全初始化   
                                                                int[5] = {1,2,3,4,5}
                                                                
                                                    不完全初始化  未被初始化的元素自动为零  
                                                                int[5] = {1,2,3}
                                                    不初始化，所有的元素都是垃圾值
                                                                int a[5] 
                                                清零：	int a[5] = {0}
                                                错误写法：int a[5]; 
                                                          a[5] = {1,2,3,4,5}
                                                只有在定义数组的同时才整体赋值，其他情况下整体赋值都是错误的
    
                                                int a[5] = {1,2,3,4,5}
                                                int b[5]
                                                如果把a数组中的值全部复制给b数组
                                                错误写法：b = a;
                                                正确写法: for(i = 0;i<5;++i)
                                                            b[i] = a[i];
                                            赋值
                                            排序
                                            求最大/小值
                                            倒置
                                            查找
                                    
                二维数组
                        int a[3][4]总共十二个元素 当做三行四列对待  这十二个元素的名字依次是
                                                                  a[0][0]  a[0][1]  a[0][2]   a[0][3]  
                                                                  a[1][0]  a[1][1]  a[1][2]   a[1][3]  
                                                                  a[2][0]  a[2][1]  a[2][2]   a[2][3]  
                                        初始化
                                        int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}
                                        int a[3][4] = {
                                                {1,2,3,4},
                                                {5,6,7,8},
                                                {9,10,11,12}
                                        }
                                    输出二维数组内容
                                      不存在多维数组：
                                      因为内存是线性一维的
                                      n维数组可以当做每个元素是n-1维的一维数组
                                      如：
                                      
                                      int a[3][4] 该数组是含有三个元素的一维数组 只不过每个元素都可以在分成四个小元素 
                                      int a[3][4][5] 该数组是含有三个元素的一维数组 只不过每个元素都是4行5列的二维数组
//数组的使用
#include<stdio.h>
void main()
{
    int a[5] = {1,2,3,4,5};  //这五个元素分别用a[0] a[1] a[2]  a[3]  a[4]表示
    int i;
    for(i = 0;i<5;++i)
        printf("%d\n",a[i]);
}
  
include<stdio.h>
void main()
{
    int a[5];
}
//把一个数组元素全部倒过来
#include<stdio.h>
void main()
{
    int a[8] = {1,2,3,4,5,6,7,8};
    int i = 0;
    int j = 7;
    int t;
    while(i<j)
    {
        t = a[i];
        a[i] = a[j];
        a[j] = t;
        i++;
        --j;
    }
    for(i =0;i < 8;++i )
        printf("%d\n",a[i]);
}
  */
//二维数组的操作
#include<stdio.h>
void main()
{
                                    
        int a[3][4] = {
                            {1,2,3,4},
                            {5,6,7,8},
                            {9,10,11,12}
                        };
        int i ,j;
        //输出数组内容
        for(i = 0;i<3;++i)
        {
            for(j = 0;j<4;++j)
                printf("%-5d  ",a[i][j]);  //-5表示左对齐五个符号
                printf("\n");
        }
    
}
